import * as tedious from 'tedious';

const config: tedious.ConnectionConfig = {
  server: 'your_server_address', // MSSQL服务器地址
  authentication: {
    type: 'default',
    options: {
      userName: 'your_username', // 数据库用户名
      password: 'your_password', // 数据库密码
    },
  },
  options: {
    database: 'your_database', // 要连接的数据库名称
    encrypt: true, // 如果连接需要加密，设置为true
  }
};

const connection = new tedious.Connection(config);

connection.on('connect', (err) => {
  if (err) {
    console.error('连接失败:', err);
  } else {
    console.log('成功连接到SQL Server');

    // 准备并执行查询
    const request = new tedious.Request(
      `SELECT * FROM your_time_series_table WHERE timestamp_column > 'start_date' AND timestamp_column < 'end_date'`,
      (err, rowCount) => {
        if (err) {
          console.error('查询失败:', err);
        } else {
          console.log(`${rowCount} 行返回.`);
          // 注意：在TypeScript中处理结果可能需要更具体的类型处理
        }

        // 查询完毕后关闭连接
        connection.close();
      });

    // 监听每一行数据
    request.on('row', (columns) => {
      const rowObject: any = {};
      columns.forEach(column => {
        rowObject[column.metadata.colName] = column.value;
      });
      console.log(rowObject);
    });

    // 执行请求
    connection.execSql(request);
  }
});

connection.on('end', () => {
  console.log('连接已关闭');
});
